package 刷题.leedcode101;

/**
 * 1.定义两个指针，一个往左走，另一个就往右走
 * 2.判断两个指针每到一个地方是否一样
 */
public class Solution {
    public boolean isSymmetric(TreeNode root){
        return check(root,root);
    }
    //定义一个方法，使传入的两次root分别为p和q
    public boolean check(TreeNode p,TreeNode q){
        //如果p==null并且q为空，则返回true
        if(p == null && q == null){
            return true;
        }
        //如果p或者q为空，说明其中一个肯定不为空，则不对称，返回false
        if(p == null || q == null){
            return false;
        }
        return check(p.left,q.right) &&
                check(p.right,q.left) &&
                p.val == q.val;
    }
}
